// 1.求数组中连续k项最大的和
let arr = [1, 3, 10, -2, 9, 8, -4];  // k = 3;
function subSum(arr,k = 3) {
    let max = 0;
    for(let i = 0 ; i < k;i++){  
        max +=  arr[i]; // 假设最大值是第一组
   }
    let win = max
    for(let i = k; i< arr.length;i++ ){
        win += arr[i] - arr[i - k]; // 出一个进一个
        max = Math.max(win,max)
   }
    return max
}
console.log(subSum(arr, 3))

// 2.无重复字符的最长字符串长度
let str = 'abcabcbb'
function findStr(str) {
    let left = 0; // 滑动窗口边界
    let right = 0;
    let set = new Set(); // 创建一个set
    let maxLen = 0;
    while(right < str.length){
        while(set.has(str[right])){ // 集合中有我就全部删掉
            set.delete(str[left++]);
       }
        set.add(str[right]); // 重新添加算长度
        maxLen = Math.max(maxLen, set.size)
        right++;
   }
    return maxLen
}
console.log(findStr(str))